package controllers;

import java.util.Date;
import java.util.List;

import org.apache.commons.lang.time.DateUtils;

import models.Procedimento;
import models.Consulta;
import models.Dentista;
import models.Paciente;
import play.Logger;
import play.data.validation.Required;
import play.data.validation.Valid;
import play.mvc.*;
import utils.Security;


public class Procedimentos extends Controller {

	/**
	 * Recupera e exibe lista de Procedimentos cadastrados.
	 */
	public static void index() {

		List<Procedimento> procedimentos = Procedimento.all().fetch();

		render(procedimentos);
	}

	/**
	 * Recupera um procedimento através do seu id.
	 * @param id
	 */
	public static void show(long id)
	{

		Procedimento procedimento = Procedimento.findById(id);

		render("@form",procedimento);
	}

	/**
	 * Exibe o form de cadastro de procedimentos.
	 */
	public static void create()
	{
		Security.deny();

		render("@form");
	}

	/**
	 * Salva (persiste) o procedimento na base.
	 * @param procedimento
	 */
	public static void save(@Valid Procedimento procedimento)
	{
		Security.deny();

		if (validation.hasErrors())
		{
			flash.error("Favor corrigir os erros a seguir");
			render("@form",procedimento);
		}
		procedimento.save();
		flash.success("Salvo com sucesso");
		index();
	}

	/**
	 * Exclui o procedimento pelo seu id.
	 * @param id
	 */
	public static void delete(long id)
	{
		Procedimento procedimento = Procedimento.findById(id);
		procedimento.delete();
		flash.success("Apagado com sucesso");
		index();
	}

}
